Data mining is a technique by which hidden patterns may be found in a group of data. True data mining doesn't just change the presentation of data, but actually discovers previously unknown relationships among the data. Data mining is typically implemented as software in or in association with database systems. Data mining includes several major steps. First, data mining models are generated based on one or more data analysis algorithms. Initially, the models are “untrained”, but are “trained” by processing training data and generating information that defines the model. The generated information is then deployed for use in data mining, for example, by providing predictions of future behavior based on specific past behavior or recommendations for actions, such as purchases, based on past actions.
One potential application for data mining involves generating predictions/recommendations for user of the World Wide Web (Web) service of the Internet. A typical prior art arrangement of such an application is shown in FIG. 1. A user (not shown) interacts with browser software 102, such as a browser application program, running on a user computer system 103. Examples of such programs include MICROSOFT INTERNET EXPLORER® and NETSCAPE NAVIGATOR®. The user provides input to browser 104 via input routines 104 and receives output from browser 104 via display routines 106. A user may access a Web site, represented by Web pages displayed to the user by browser 102. The user may then provide input, typically by activating controls provided in the Web pages, to obtain functionality from the Web site. User input may be processed, then transmitted over the Internet 108 to a Web server 110. Web server 110 is typically a network server that handles requests for service from user computer systems, such as user computer system 103. Running on Web server 110 are one or more Web applications, such as Web application 112. In order to provide data mining functionality, Web server 110 is typically communicatively connected to a data mining engine, such as data mining engine 114. Web application 112 receives user input from user computer system 103 via the Internet and processes the input to provide the requisite functionality.
In order to provide data mining functionality, Web application 112 must access data mining system 114. Typically, Web application 112 interacts with data mining engine 114 through application program interface (API) calls, such calls using the Java API. To perform a particular data mining task, a Web site designer must generate custom code, such as Java code 115. Java code 115 then directly accepts user input 104 and generates Java API calls that are transmitted via Internet 108 and Web application 112 to data mining engine 114. Data mining engine 114 performs the requested data mining service and generates data mining results 116, such as predictions of future behavior or recommendations for actions. Data mining engine 114 transmits data mining results 116 to Web application 112. Web application 112 receives data mining results 116 and generates HyperText Markup Language (HTML) code 118, which is designed to display data mining results 116 in an appropriate format, etc. Web application 112 transmits HTML code 118 to browser 102 via the Internet 108. Browser 102 receives HTML code 118 and generates display 120 based on the received HTML code 118.
This arrangement provides the advantage of flexibility in the design of the Web site and the Web pages that make up the site. However, a problem arises in that the use of API calls to interface the Web application with the data mining engine requires the generation of custom code for each implementation of data mining functionality on each Web page that uses data mining. This makes it impossible for a Web site designer to incorporate data mining functionality into a Web page as an “out-of-the-box” component. A need arises for a technique by which data mining functionality can be incorporated into Web page design that provides improved ease of design without the need for extensive custom programming.